/**
 * 活动新增修改模块
 */
var promotionFormValidataBasic = {
    rules : {
        promotionType : {
            required : true
        },
        promotionName : {
            required : true,
            minlength : 0,
            maxlength : 100
        },
        promotionTitle : {
            required : true,
            minlength : 0,
            maxlength : 200
        },
        promotionDate : {
            required : true
        },
    },
    messages : {
        promotionType : {
            required : '请选择活动类型'
        },
        promotionName : {
            required : '请填写活动名称',
            minlength : '活动名称至少3个字符',
            maxlength : '活动名称至少100个字符'
        },
        promotionTitle : {
            required : '请填写活动标语',
            minlength : '活动标题至少3个字符',
            maxlength : '活动标题至少200个字符'
        },
        promotionDate : {
            required : '请选择活动起止时间'
        }
    },
    success : function(p, element) {
        try {
            p.html("").addClass("sucess");
        } catch (e) {
            p.html("").addClass("sucess");
        }
    },
    errorPlacement : function(error, element) { // 错误信息位置设置方法
        var tagName = $(element).is("select");
//        if (!tagName) {
//            error.insertAfter(element);
//        } else {
//            error.insertAfter(element.parent().next());
//        }
        if (element.is(':radio') || element.is(':checkbox')) {
            var eid = element.attr('name');
            error.appendTo(element.parent().parent().parent());
//            error.appendTo(element.parent().parent().next().next());
//            error.insertAfter(element.parent());
        } else if (tagName) {
            error.insertAfter(element.parent().next());
        } else {
            error.insertAfter(element);
        }
    },
    submitHandler : function(form) {
        form.submit();
    }
};


/**
 * 初始化
 */
$(function() {
    
  //初始化iCheck的checkbox(选择器需要排除bootstrap-swicth的元素,以防止影响其样式)
    $('input[type="checkbox"]').iCheck({checkboxClass: 'icheckbox_square-green'});   
    //初始化iCheck的radio
    //活动类型
    $('input[type="radio"][name="promotionType"]').iCheck({radioClass: 'iradio_square-green'});
//    $('input[type="radio"][name="promotionType"]').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
//        doShowRule($(this).val());
//    });
    //赠品类型
    $('input[type="radio"][name^="giftType"]').iCheck({radioClass: 'iradio_square-green'});
//    $('input[type="radio"][name^="giftType"]').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
////        doShowGift($(this).val(), "giftType");
//        doShowGift($(this).val(), $(this).attr('name'));
//    });
    
//    $('#isLimit').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
//        doCheckedLimit();
//    });
//    $('#isLimit').on('ifUnchecked', function(event){ //ifUnchecked 事件应该在插件初始化之前绑定 
//        dounCheckedLimit();
//    });
    
//    jQuery.metadata.setType("attr", "validate");

    //var begin = $("#begin").val() ? $("#begin").val() : moment().subtract(-1, "days");//明天
    //var end = $("#end").val() ? $("#end").val() : moment().subtract(-2, "days");//后台
    
    if($("#id").val()) {
        //获取活动类型
        var promotionType = $('input[name="promotionType"]:checked').val();
        if(2 == promotionType) {
            try {
                //满赠类型，需要初始化加载满赠商品
                var tableArr = $("table[id^='giftTable']");
                if(tableArr.length > 0) {
                    for(var i = 0; i < tableArr.length; i ++) {
                        var ruleId = tableArr[i].title.split('#')[1];
                        initProductTable(tableArr[i].id, 2, ruleId);
                    }
                }
            } catch (e) {
                console.log(e);
            }
        }
        
        //初始化所有满赠优惠券的下拉列表
        var couponInputArr = $("input[name='couponId'");
        var couponArr = $(".selectpicker");
        if(couponInputArr && couponInputArr.length > 0 && couponArr && couponArr.length > 0 && couponInputArr.length == couponArr.length) {
            for(var i = 0; i < couponArr.length; i++) {
                var couponId = couponInputArr[i].id;
                var couponComboId = couponArr[i].id;
                var couponVal = $("#" + couponId).val();
                if(couponComboId) {
                    $("#" + couponComboId).empty().selectpicker('refresh');
                    sys.selectpicker({
                        id : couponComboId, // select的id
                        param: {promotionDate: $("#promotionDate").val()}, //过滤参数
                        url : rootPath + "/promotion/getCouponList", // 请求数据的远程地址
                        defaultValue : couponVal,
                        defaultAll : true,
                        valueField : 'id',
                        textField : 'remark'
                    });
                }
            }
        }
    }
    
    $(".selectpicker").attr('disabled','disabled');
    
    // 活动商品列表
    initProductTable('productTable', 1, "");
    
    $("#btn_back").click(function() {
        window.location.href = rootPath + "/promotion/toListPromotionPage";
    });
    /*
    //请求主品牌数据
    sys.selectpicker({
        id : 'brandCode',
        url: rootPath + '/productBrand/getBrandList',  //请求数据的远程地址
        param: {parentBrandCode: '0'}, //过滤参数
        defaultValue: null, //默认值
        valueField: 'brandCode',
        textField: 'brandNameCh',
        defaultAll: true
    });

    //请求子品牌数据
    sys.selectpicker({
        id : 'childBrandCode',
        url: rootPath + '/productBrand/getBrandList',  //请求数据的远程地址
        param: {parentBrandCode: $("#brandCode").val()}, //过滤参数
        defaultValue: null, //默认值
        valueField: 'brandCode',
        textField: 'brandNameCh',
        defaultAll: true
    });

    //请求主分类数据
    sys.selectpicker({
        id : 'category',
        url: rootPath + '/productCategory/getCategoryList',  //请求数据的远程地址
        param: {parentCategoryId: '0'}, //过滤参数
        defaultValue: null, //默认值
        valueField: 'id',
        textField: 'categoryName',
        defaultAll: true
    });

    //请求子分类数据
    sys.selectpicker({
        id : 'childCategory',
        url: rootPath + '/productCategory/getCategoryList',  //请求数据的远程地址
        param: {parentCategoryId: $("#category").val()}, //过滤参数
        defaultValue: null, //默认值
        valueField: 'id',
        textField: 'categoryName',
        defaultAll: true
    });
    */
});



/**
 * 初始化活动商品列表（已选择商品）
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年9月29日 上午10:26:10
 */
function initProductTable(tableId, productType, ruleId) {
    // 定义列
    var columns = [ {
        title : '序号',
        align : 'center',
        valign : 'middle',
        width : 100,
        formatter : function(value, row, index) {
            return index + 1;
        }
    }, {
        field : 'id',
        title : 'ID',
        valign : 'middle',
        align : 'center',
        visible: false
    }, {
        field : 'productCode',
        title : '商品编码',
        valign : 'middle',
        width : 200,
        align : 'center'
    }, {
        field : 'productName',
        title : '商品名称',
        valign : 'middle',
        align : 'left',
        formatter : function(value, row, index) {
            return row.productName + "(" + row.productCode + ")";
        }
    }, {
		field : 'productStatus',
		title : '商品状态',
		valign : 'middle',
		align : 'center',
		formatter : function(value, row, index) {
			if(value == '1') {
				return "<span class='label label-success'>上架</span>"; 
			} else if(value == '2') {
				return "<span class='label label-warning'>预售中</span>"; 
			} else if(value == '0') {
				return "<span class='label label-danger'>已售罄</span>"; 
			} else if(value == '3') {
				return "<span class='label label-grey'>下架</span>"; 
			} else {
				return '未知状态';
			}
		}
	}, {
        field : 'isDelete',
        title : '是否删除',
        valign : 'middle',
        align : 'center',
        formatter : function(value, row, index) {
            if (value == "1"){
                return "<span class='label label-success'>正常</span>";
            }else if (value == "0"){
                return "<span class='label label-danger'>已删除</span>";
            }
        }
    } ];
    
    // 定义查询回调函数（查询参数在此设置）
    var queryParams = {
        promotionId : $("#id").val(),
        productType : productType,
        promotionRuleId : ruleId
    };
    var url = rootPath + "/promotion/productList";
    sys.initTable(tableId, {
        url : url,
        idField : 'productCode',
        queryParams : queryParams,
        columns : columns,
        striped : true,
        clickToSelect : false,
        pagination: false
    });
}
